#light

namespace FsxUnit

[<CompilationRepresentation(CompilationRepresentationFlags.ModuleSuffix)>]
module Syntax =
  /// This function precedes all other functions for determining success or failure
  val should : ('a -> 'b) -> 'a -> 'b
  
  /// This function precedes True, False, Empty, NonEmpty, Null and NonNull
  val be : ('a -> unit) -> 'a -> unit
  
  /// Determine whether the function is true
  val True : bool -> unit
  
  /// Determine whether the function is false
  val False : bool -> unit
  
  /// Determine whether the collection is empty
  val Empty : System.Collections.IEnumerable -> unit
  
  /// Determine whether the collection is non-empty
  val NonEmpty : System.Collections.IEnumerable -> unit
  
  /// Determine whether the value is null
  val Null : 'a -> unit
  
  /// Determine whether the value is non-null
  val NonNull : 'a -> unit
  
  /// Determine whether the given values are equal
  val equal : 'a -> 'a -> unit
  
  /// Determine whether the given values are not equal
  val not_equal : 'a -> 'a -> unit
  
  /// Determine whether the string contains the following value
  val contain : string -> string -> unit
  
  /// Determine whether the string does not contains the following value
  val not_contain : string -> string -> unit
  
  /// Determine whether the collection has the following value
  val have : 'a -> seq<'a> -> unit
  
  /// Determine whether the collection does not have the following value
  val not_have : 'a -> seq<'a> -> unit
  
  /// Determine whether the references are the same
  val be_same_as : 'a -> 'b -> unit
  
  /// Determine whether the references are not the same
  val not_be_same_as : 'a -> 'b -> unit
  
  /// Determine whether the item is in the given range
  val be_in_range : 'a -> 'a -> 'a -> unit
  
  /// Determine whether the item is not in the given range
  val not_be_in_range : 'a -> 'a -> 'a -> unit
  
  /// Determine whether the item a given type
  val be_type : System.Type -> 'a -> unit  

  /// Determine whether the item is assignable from a given type
  val be_assignable_from : System.Type -> 'a -> unit
 
  /// Determine whether the function should throw an exception
  val throw_exception : (unit -> unit) -> #exn
  
  /// Determine whether the function should not throw an exception
  val not_throw_exception : (unit -> unit) -> unit